package com.example.demo.entity;

import java.util.Date;
import java.util.List;

public abstract class Student {

    private StudentName name;

    private List<Module> modules;

    private StudentId studentId;

    private Date birthDay;

    private String supervisorName;

    private SmartCard smartCard;

    private Integer age;

    public List<Module> getModules() {
        return modules;
    }

    abstract public void checkCredits();

    abstract public String getSupervisorName();

    abstract public String getStudentType();

    public StudentName getName() {
        return name;
    }

    public void setName(StudentName name) {
        this.name = name;
    }

    public void setModules(List<Module> modules) {
        this.modules = modules;
    }

    public void setStudentId(StudentId studentId) {
        this.studentId = studentId;
    }

    public Date getBirthDay() {
        return birthDay;
    }

    public void setBirthDay(Date birthDay) {
        this.birthDay = birthDay;
    }

    public void setSupervisorName(String supervisorName) {
        this.supervisorName = supervisorName;
    }

    public SmartCard getSmartCard() {
        return smartCard;
    }

    public void setSmartCard(SmartCard smartCard) {
        this.smartCard = smartCard;
    }

    public StudentId getStudentId() {
        return studentId;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name=" + name +
                ", modules=" + modules +
                ", studentId=" + studentId +
                ", birthDay=" + birthDay +
                ", supervisorName='" + supervisorName + '\'' +
                ", smartCard=" + smartCard +
                ", age=" + age +
                '}';
    }
}
